/**
 * 在 ES6 中，Array 的原型上暴露了 3 个用于检索数组内容的方法：keys()、values()和
 * entries()。keys()返回数组索引的迭代器，values()返回数组元素的迭代器，而 entries()返回
 * 索引/值对的迭代器
 */
;(function () {
    const a = ["foo", "bar", "baz", "qux"];
    // 因为这些方法都返回迭代器，所以可以将它们的内容
    // 通过 Array.from()直接转换为数组实例
    const aKeys = Array.from(a.keys());
    const aValues = Array.from(a.values());
    const aEntries = Array.from(a.entries());
    console.log(aKeys); // [0, 1, 2, 3]
    console.log(aValues); // ["foo", "bar", "baz", "qux"]
    console.log(aEntries); // [[0, "foo"], [1, "bar"], [2, "baz"], [3, "qux"]]


})()

;(function () {

    // 使用 ES6 的解构可以非常容易地在循环中拆分键/值对：
    const a = ["foo", "bar", "baz", "qux"];
    for (const [idx, element] of a.entries()) {
        console.log(idx);
        console.log(element);
    }
    // 0
    // foo
    // 1
    // bar
    // 2
    // baz
    // 3
    // qux
})()